package types

// ToolCall 模型生成的应调用的函数名称和参数。
type ToolCall struct {
	Type     string   `json:"type"` // 模型调用的工具类型
	Function struct { // 包含模型生成的函数名称和JSON格式的参数。
		Name      string `json:"name"`      // 模型生成的函数名称。
		Arguments string `json:"arguments"` // 模型生成的函数调用参数的JSON格式
	} `json:"function"`
}

// Tool 函数的描述，作用是为了向模型描述外部函数库
type Tool struct {
	Type     string   `json:"type"`
	Function Function `json:"function"`
}

type Function struct {
	Name        string                 `json:"name"`        // 函数名称
	Description string                 `json:"description"` // 用于描述函数功能。模型会根据这段描述决定函数调用方式。
	Parameters  map[string]interface{} `json:"parameters"`  // parameters 以准确地定义函数所接受的参数。
}
